
package com.udc.medLine.transaction;

import java.util.List;

import com.udc.medLine.entity.Cidade;
import com.udc.medLine.entity.CondicaoVO;
import com.udc.medLine.entity.Marca;
import com.udc.medLine.factory.FactoryCidade;
import com.udc.medLine.factory.FactoryMarca;
import com.udc.medLine.persistence.Bd;

public class TransactionCidade {

	private Cidade cidade;
	private List listCidade;
	private Bd banco;
	
	/**
	 * 
	 */
	public TransactionCidade() {
		super();
		cidade = new Cidade();
		try{
			banco = Bd.getInstance();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		// TODO Stub de construtor gerado automaticamente
	}

	public Cidade getCidade() {
		return cidade;
	}

	public void setCidade(Cidade new_cidade) {
		this.cidade = new_cidade;
	}

	public void remover(Cidade nCidade) throws Exception {
		banco.beginTransaction();
			FactoryCidade factory = new FactoryCidade();
			cidade.setId(nCidade.getId());
			factory.setCidade(cidade);
			factory.delete();
		banco.commit();
	}

	public void inserir(Cidade nCidade) throws Exception {
		banco.beginTransaction();
			FactoryCidade factory = new FactoryCidade();			
			cidade.setNome(nCidade.getNome());
			factory.setCidade(cidade);
			factory.insert();
		banco.commit();
	}

	public void atualizar(Cidade nCidade) throws Exception {
		banco.beginTransaction();
			FactoryCidade factory = new FactoryCidade();
			cidade.setId(nCidade.getId());
			cidade.setNome(nCidade.getNome());
			factory.setCidade(cidade);
			factory.update();
		banco.commit();
	}


	public void obterCidade(String campo, String valor) throws Exception{
		banco.beginTransaction();
			FactoryCidade factory = new FactoryCidade();
			factory.setCidade(new Cidade());
			listCidade = factory.getCidade(campo,valor);
		banco.commit();
	}
	
	public void obterListaCidade() throws Exception{
		banco.beginTransaction();
			FactoryCidade factory = new FactoryCidade();
			factory.setCidade(new Cidade());
			listCidade = factory.getListaCidade();
		banco.commit();
	}
	
	public void obterCidade(Cidade nCidade) throws Exception{
		banco.beginTransaction();
			FactoryCidade factory = new FactoryCidade();
			cidade.setId(nCidade.getId());
			factory.setCidade(cidade);
			cidade = factory.obterCidade();
		banco.commit();
	}
	
	public List<Cidade> search(CondicaoVO condicao) throws Exception {
		banco.beginTransaction();
		FactoryCidade factory = new FactoryCidade();
		listCidade = factory.search(condicao);
		banco.commit();
		return listCidade;
	}
	

	/**
	 * @return
	 */
	public List getListCidade() {
		return listCidade;
	}

	/**
	 * @param list
	 */
	public void setListCidade(List list) {
		listCidade = list;
	}

}
